#pragma once

class Camera
{
public:
	static const float moveSpeed;
	static const float rotSpeed;

	float x, y, z;
	float lx, ly, lz;
	float xrot, yrot;
	float dirX, dirY;
	float planeX, planeY;

	Camera();
	Camera(float x, float y, float z, float xrot = 0, float yrot = 0, float lx = 0.0f, float ly = 0.0f, float lz = -1.0f);

	// dir = -1 or 1
	void moveForward(int dir);

	void moveX(int dir);
	void moveZ(int dir);
	void moveTo(float x, float y, float z);
	void orient();

	float nextX(int dir);
	float nextZ(int dir);
};